<?php
// +----------------------------------------------------------------------
// | makePHP 
// +----------------------------------------------------------------------
// | Copyright (c) 2009 http://makephp.org All rights reserved.
// +----------------------------------------------------------------------
// | Licensed BSD.(http://www.make.org/BSD-license.txt)
// +----------------------------------------------------------------------
// | Author: 叁石(sanshi) <sanshi0815@tom.com>
// | Author: 白家昌<baijc2004cn@126.com>
// +----------------------------------------------------------------------
/*
	字符串检查类
	*@author  sanshi

*/
class CheckBase
{
	public function checkBase()
	{
	}
	/**
	*用来检查字符串是否为空
	*@param $str 检查的字段
	*@param $isStr 如果字段有可能唯一字符是数字或者bool类型时使用
	*@return bool 为空的时候返回true
	*/
	public static function strIsNull($str,$isStr=true)
	{
		return $isStr?(empty($str)?true:false)
						:(isset($str)?false:true);
	}
	public static function isEspecial($str)
	{
		$format='[\*#%]';
		return checkBase::strComparePattern($str,$format);
	}
	/**
	*字符串与正则表达式做比较
	*@param $str			要比较的字符串
	*@param $pattern     要比对的正则
	*@return bool
	*与正则比对上了返回true
	*/
	public static function strComparePattern($str,$pattern)
	{
		if(preg_match("/{$pattern}/",$str))
		{
			//符合了返回
			return true;
		}
		return false;
	}
	/**
	*判断字符串长短
	*@param $str 要检查的字符串
	*@param $max 最大长度
	*@param $min 最小长度
	*@return bool
	*符合要求返回true
	*/
	public static function strCompareLen($str,$max,$min=1)
	{
		$len = strlen($str);
		$max=empty($max)?$len:$max;
		return ($len>$max || $len<$min)?false:true;
	}
	/**
	*中文字符串截取
	*@param $str       string    要截取的字符串
	*@param $len       int		 截取字符串的长度
	*@param $replace   string	 用什么表示
	*@return string
	*缺点，不对标点符号做判断，结到那里算那里
	*/
	public static function chinaSubstr($str,$len='',$replace='...')
	{
		if ( empty($len) || !is_int($len) ) return $str;
		$chr= ord( substr( $str,$len-1,$len ) );
		$temp = ( $chr>=161 && $chr<=255 ) ? substr($str,0,$len+1) : substr($str,0,$len);
		return $len<strlen($str) ? $temp.$replace : $temp;
	}
}
/*
$str='adfasd';
$format='^[a-z]';
$max=10;
$min=2;
$c=new checkBase();
echo $c->strIsNull($str,0);
//echo $c->strCompareLen($str,$max,$min);
echo $c->strComparePattern($str,$format);
*/
?>